/**
 *
 */
package jp.seraph.cui;

/**
 * 全ての型の基底型を表す実装
 *
 */
public class SuperType extends AbstractNodeType implements SystemNodeType {
    private SuperType(){
        super("Object");
    }

    private static SuperType INSTANCE = new SuperType();

    public static SuperType getInstance(){
        return INSTANCE;
    }

    /**
     *
     * @see jp.seraph.cui.AbstractNodeType#getSuperType()
     */
    @Override
    protected SystemNodeType getSuperType() {
        return null;
    }

    /**
     *
     * @see jp.seraph.cui.SystemNodeType#isCommand()
     */
    public boolean isCommand() {
        return false;
    }

    /**
     *
     * @see jp.seraph.cui.SystemNodeType#isCompatible(jp.seraph.cui.SystemNodeType)
     */
    public boolean isCompatible(SystemNodeType aType) {
        return this.equals(aType);
    }

    /**
     *
     * @see jp.seraph.cui.SystemNodeType#isData()
     */
    public boolean isData() {
        return false;
    }

    /**
     *
     * @see jp.seraph.cui.SystemNodeType#isMode()
     */
    public boolean isMode() {
        return false;
    }
}
